// 声明一个变量 接收发送请求得到的验证码
let cope = ''
Page({
  data: {
    countDownVisible: false,
    mobile: '',
    code: '',
    redirectUrl: ''
  },
  // 接收传值过来的路径 用于登录后跳转到之前页面
  onLoad(option) {
    console.log('登录页面', option)
    this.data.redirectUrl = option.redirectUrl
  },
  // 发送ajax
  async getclod() {
    // 调用校验规则
    this.jiaoyan()
    // 条件判断 若校验成功(取反!) 则直接返回
    if (!this.jiaoyan()) return // 后面都这么写 失败的代码 直接退出函数 后面再写正确的代码
    // 条件判断完 就可以直接发请求了
    const res = await wx.$http.get('/code', {
      mobile: this.data.mobile
    })
    console.log(res)
    // 进行判断 若返回code不是10000 则提示用户:验证失败
    if (!res.code) return wx.$utilss.toast('验证失败')
    // 若成功的话 则走下面的代码 setData代表的从逻辑层修改视图层的代码
    wx.$utilss.toast('验证码已发送手机中')
    this.setData({
      countDownVisible: true
    })
    // 把返回的验证码 赋值给变量
    cope = res.data.code
  },
  // 给自动注册 添加一个事件 点击可以剪切内容
  copecode() {
    // 剪切板 通过拿到手机验证码 点击剪切 然后复制到输入框
    wx.setClipboardData({
      data: cope
    })
  },
  // 点击登录注册时间
  async submitForm() {
    // 进行手机号和验证码校验
    if (!this.jiaoyan() || !this.jiaoyanCode()) return // 成功 则走下面的代码
    console.log(1212)
    // 发送ajax请求
    const res = await wx.$http.post('/login', {
      mobile: this.data.mobile,
      code: this.data.code
    })
    // 校验数据是否合法
    if (res.code !== 10000) return wx.$utilss.toast('登录失败，请检查手机号验证码')
    console.log(res)
    // 把存到本地存储中的token 进行封装 因为在请求拦截器中 也需要重复存在token
    getApp().settoken(res.data.token, res.data.refreshToken)
    // 跳转到登录页面 这里需要一个条件判断 若有url则返回上一级 若没有 那直接到首页
    /*  if (this.data.redirectUrl) {
       wx.redirectTo({
         url: this.data.redirectUrl,
       })
     } else {
       wx.redirectTo({
         url: '/page/index/index',
       })
     } */
    // 还可以通过三元表达式写
    /*  this.data.redirectUrl ? wx.redirectTo({
       url: this.data.redirectUrl,
     }) : wx.redirectTo({
       url: '/page/index/index',
     }) */
    // 还可以通过逻辑中断来写
    wx.redirectTo({
      url: "/" + this.data.redirectUrl || '/page/index/index'
    })

  },
  // 制定手机号校验规则
  jiaoyan() {
    // 正则验证
    const res = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
    const valid = res.test(this.data.mobile.trim())
    // 验证未通过
    if (!valid) wx.$utilss.toast('请填写正确的手机号')
    // 返回验证结果
    return valid
  },
  // 制定验证码校验规则
  jiaoyanCode() {
    // 正则验证
    const res = /^\d{6}$/
    const valid = res.test(this.data.code.trim())
    // 验证未通过
    if (!valid) wx.$utilss.toast('请填写正确的验证码')
    // 返回验证结果
    return valid
  },
  // 倒计时回调
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
})